/**
 * 
 */
package geral.util;

import java.text.NumberFormat;
import java.util.List;
import java.util.Locale;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 * @author stevens
 * 
 */

public class FacesUtil {

	// INFO

	public static void mensInfo(String msg) {
		mensInfo(null, msg);
	}

	public static void mensInfo(String id, String msg) {
		message(id, msg, FacesMessage.SEVERITY_INFO);
	}
	
	public static void mensInfo(List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		mensInfo(null, erro);
	}

	public static void mensInfo(String id, List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		message(id, erro, FacesMessage.SEVERITY_INFO);
	}

	// ERRO

	public static void mensErro(String msg) {
		mensErro(null, msg);
	}

	public static void mensErro(String id, String msg) {
		message(id, msg, FacesMessage.SEVERITY_ERROR);
	}
	
	public static void mensErro(List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		mensErro(null, erro);
	}

	public static void mensErro(String id, List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		message(id, erro, FacesMessage.SEVERITY_ERROR);
	}


	// WARN

	public static void mensWarn(String msg) {
		mensWarn(null, msg);
	}

	public static void mensWarn(String id, String msg) {
		message(id, msg, FacesMessage.SEVERITY_WARN);
	}
	
	public static void mensWarn(List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		mensWarn(null, erro);
	}

	public static void mensWarn(String id, List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		message(id, erro, FacesMessage.SEVERITY_WARN);
	}


	// FATAL

	public static void mensFatal(String msg) {
		mensFatal(null, msg);
	}

	public static void mensFatal(String id, String msg) {
		message(id, msg, FacesMessage.SEVERITY_FATAL);
	}
	
	public static void mensFatal(List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		mensFatal(null, erro);
	}

	public static void mensFatal(String id, List<String> msg) {
		String erro = "";
		for(String mensagem: msg){
			erro +=mensagem+"\n";
		}
		message(id, erro, FacesMessage.SEVERITY_FATAL);
	}


	//

	private static void message(String id, String msg, FacesMessage.Severity severity) {
		FacesContext.getCurrentInstance().addMessage(id, new FacesMessage(severity, msg, null));
	}
	
	public static Double converteToDouble(String numero) throws Exception {
		Double num = 0.0;
		NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("pt",
				"BR"));
		if (numero != null && !numero.equals("")) {
			numero = numero.replace(nf.getCurrency().getSymbol(), "");
			numero = numero.replace(".", "");
			numero = numero.replace(",", ".");
			num = Double.parseDouble(numero);
		}

		return num;
	}

	public static String convertDoubleToString(Double valor) {
		NumberFormat nf = NumberFormat.getCurrencyInstance(new Locale("pt",
				"BR"));
		String valorTxt = nf.format(valor);
		return valorTxt;
	}
}
